// Finds the two largest elements in scores // and returns their average. // Precondition: scores.length >= 2. public class Average { public static double averageTopTwo(int[] scores){ int i; int n = scores.length; int iMax1 = 0; //index of largest element int iMax2 = 1; //index of second largest element //If scores[iMax2] is bigger than scores[iMax1] -- //swap iMax1 and iMax2 if (scores[iMax2] > scores[iMax1]){ i=iMax1; iMax1 = iMax2; iMax2 = i; } //n = length of scores for(i=2; i<n; i++){ if(scores[i] > scores[iMax1]){ iMax1=i; }else if(scores[i] > scores[iMax2]){ iMax2 = i; } } return (iMax2 + iMax1)/2; } }